Skip to content

Conversation

@sfc-gh-dmatthews
Copy link
Contributor

📚 Context

Introduce the Streamlit Playground in Get started.

🧠 Description of Changes

  • Add another page to setup/installation to introduce the Streamlit Playground.
  • Add a little color and pizazz to the installation overview page.

Contribution License Agreement
By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.

@sfc-gh-dmatthews
Copy link
Contributor Author

TODO: Update URLs. I changed installation to setup, but didn't change the URLs yet, since I'll do that at the end in case of other changes/edits to names.

Copy link
Contributor

@sfc-gh-tteixeira sfc-gh-tteixeira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't reviewed the new design yet, so not approving yet!

</RefCard>

</TileContainer>
## General setup and installation
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW I think the previous wording made it clearer that if you're an expert you don't have to read the rest of these.

Copy link
Contributor Author

@sfc-gh-dmatthews sfc-gh-dmatthews Mar 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved the Playground up to highlight it further and added a little explainer blurb to emphasize to completely new or random passersby that the Playground is the easiet way to get a taste before choosing one of the local or cloud setup options below.

content/menu.md Outdated
url: /get-started/installation
- category: Get started / Installation / Use command line
- category: Get started / Setup / LOCAL DEVELOPMENT
- category: Get started / Setup / Use Streamlit Playground ✨
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be under CLOUD DEVELOPMENT ?

Copy link
Contributor Author

@sfc-gh-dmatthews sfc-gh-dmatthews Mar 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It uses your machine's local resources, though. It runs in your browser, but uses your own hardware, not a cloud server.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved it up to highlight it separately, which brushes the distinction under the rug. :)

Copy link
Contributor

@sfc-gh-tteixeira sfc-gh-tteixeira Mar 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still feels funny...

I think the first thing under the Setup section needs to be how to install locally. Also, I guess the real problem is that it doesn't really feel like the playground belongs in the Setup section.

What if we pulled it out of that menu and renamed the menu to Installation?

  • Get started
    • Playground
    • Installation
      • LOCAL DEVELOPMENT
      • Install via command line
      • Install via Anaconda Distribution
      • CLOUD DEVELOPMENT
      • Use GitHub Codespaces
      • Use Snowflake
    • Fundamentals
    • First steps
  • Develop
  • Deploy
  • Knowledge base

- Start playing with code right away, completely in your browser.
- No configuration.
- No command line.
- No application installations in your OS.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should make it clear that the playground doesn't support all Streamlit and Python features.

Copy link
Contributor Author

@sfc-gh-dmatthews sfc-gh-dmatthews Mar 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I call this out in the <Note> immediately following the conveniences list. Would making it two bullet points or two paragraphs make it clearer? Or maybe use <Important> instead of <Nonte>?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did the following:

  • Switched the <Note> to <Important>.
  • Moved the warning about local hardware out of the admonition, sprinkling it into the prerequisites and "wait" step.
  • Added emphasis to limited in the first paragraph.

@sfc-gh-dmatthews
Copy link
Contributor Author

I'm also thinking to cut the bottom margin for InlineCalloutContainer in half. (Some design thoughts shared in the Streamlit docs Slack channel.)


## Prerequisites

Because the Playground runs Streamlit _locally_ in your browser, you should visit the Playground from a personal computer, not a mobile device.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand this paragraph. The playground should work find on mobile too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you don't think there are any performance issues running on mobile devices, I can remove the warning.

I have two concerns about people using mobile devices:

  1. It downloads (perhaps) an unexpected amount of data when visiting the page in order to use the browser itself to run the Streamlit server. This isn't some remote machine running executing the Python code.
  2. They may be a bad user experience without the side-by-side view and a full keyboard (though this is a secondary concern for me relative to the first).


1. Go to [streamlit.io/playground](https://streamlit.io/playground).

1. Wait for [`stlite`](https://github.com/whitphx/stlite) &mdash; a browser-based version of Streamlit &mdash; to load in your browser.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think you should mention stlite here. It's just confusing to the user.

Instead just say something like: Wait for the playground to load. Behind the scenes this downloads a version of Python and Streamlit that your browser can run, so this may take a bit of time.


![Streamlit Playground is fully loaded and ready to accept code edits](/images/get-started/Playground-1-loaded.png)

## Create a `Hello World` app
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe tell users to click on different example apps and play with them first?


## What's next?

Read about our [Basic concepts](/get-started/fundamentals/main-concepts) and try out more commands in your app.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think "what's next" should point people toward installing Streamlit. Maybe something like:

What's next?

At this point you have two options:

  1. You can continue learning Streamlit through the playground -- great for learning and quick snippets.

  2. Or get started for real by installing Streamlit on your machine or the cloud.

content/menu.md Outdated
url: /get-started/installation
- category: Get started / Installation / Use command line
- category: Get started / Setup / LOCAL DEVELOPMENT
- category: Get started / Setup / Use Streamlit Playground ✨
Copy link
Contributor

@sfc-gh-tteixeira sfc-gh-tteixeira Mar 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still feels funny...

I think the first thing under the Setup section needs to be how to install locally. Also, I guess the real problem is that it doesn't really feel like the playground belongs in the Setup section.

What if we pulled it out of that menu and renamed the menu to Installation?

  • Get started
    • Playground
    • Installation
      • LOCAL DEVELOPMENT
      • Install via command line
      • Install via Anaconda Distribution
      • CLOUD DEVELOPMENT
      • Use GitHub Codespaces
      • Use Snowflake
    • Fundamentals
    • First steps
  • Develop
  • Deploy
  • Knowledge base


There are many ways to get started coding with Streamlit. If you're brand new to Streamlit or just passing through on a random internet walk, we recommend using the Streamlit Playground for your first hands-on experience. It's quick and ready to go in your browser. After you experience the awesomeness of Streamlit, we're confident you'll want to come back and set up a full development environment, which you can do locally or in the cloud, as described in the options below.

<InlineCalloutContainer>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're doing heroic work, but I think we need a design pass here.

I can take a pass directly in the code and share it with you. Or we can meet and do it live. LMK what you prefer.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I love our pair programming sessions and I think that will be faster. I was trying to mostly work within the components I already have, but I also have vague design ideas to go a little further. We can also talk about user journeys here. (Like whether someone might use the playground to walk through Basics or not.) 😁

@sfc-gh-tteixeira sfc-gh-tteixeira force-pushed the playground-and-get-started branch from 374fcce to 6798014 Compare March 8, 2025 06:23
@sfc-gh-dmatthews sfc-gh-dmatthews force-pushed the playground-and-get-started branch from 6798014 to 374fcce Compare March 9, 2025 00:22
@sfc-gh-tteixeira sfc-gh-tteixeira requested a review from a team as a code owner September 13, 2025 01:38
@sfc-gh-dmatthews
Copy link
Contributor Author

sfc-gh-dmatthews commented Sep 15, 2025

I used option 7, but a couple edits:

  • The component rework broke dark mode color for the arrow link, so I tweaked that. (I don't know why, but some style doesn't correctly apply when you use dark: inline with other styles and requires :global(dark).
  • I really don't like just "Experts" because....experts in what? In Streamlit? In frontend development? So, I changed it to "experienced Python developers." (I still have qualms because "how experienced," but it's less mental chafing.)
    • I also shorted the instructions to just one block. We're already making assumptions about knowledge, so I don't want to belabor the point.
  • I used sampling instead of taste to avoid non-literal language.

@sfc-gh-dmatthews sfc-gh-dmatthews removed the request for review from a team September 15, 2025 21:31

Try a version of Streamlit that runs in your browser&mdash;no installation required.
(This is not how Streamlit is meant to be used, because it has many downsides. That's why it's a
_playground_!)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this is heavily borrowed from my own text, but how about this change:

Try a Streamlit Playground that runs in your browser—no installation required. (Note that this is not how Streamlit is meant to be used, because it has many downsides. That's why it's a
playground!)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


Try a version of Streamlit that runs in your browser&mdash;no installation required.
(This is not how Streamlit is meant to be used, because it has many downsides. That's why it's a
_playground_!)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this is heavily borrowed from my own text, but how about this change:

Try a Streamlit Playground that runs in your browser—no installation required. (Note that this is not how Streamlit is meant to be used, because it has many downsides. That's why it's a
playground!)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@sfc-gh-tteixeira
Copy link
Contributor

Comment on the design (I haven't looked at the code yet)

I like it! The one thing that I was worried about when I made a similar design is that there a lot of arrows when you get to the bottom of the screen. That's why I tried a design with a different type of icon as well. But this is somewhat minor. I can live with it.

Screenshot 2025-09-16 at 10 42 31

content/menu.md Outdated
url: /get-started/installation
- category: Get started / Installation / Use command line
- category: Get started / Installation / LOCAL DEVELOPMENT
- category: Get started / Installation / Use Streamlit Playground ✨
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Can we remove the emoji? First because I think it doesn't look great to have an emoji here, but second because this specific emoji has come to mean "AI", which this playground doesn't have.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@sfc-gh-tteixeira
Copy link
Contributor

I've pushed some changes to the colors. These look good with both light and dark modes on my machine.

## Create an app in the cloud

<h5>Option 3: I'd rather use a cloud-based environment</h5>
### Option 1: I want a free cloud environment
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-blocking: I'd love to make option 1 feel more like the community option, and option 2 like the pro option.

_playground_!)

<IconLink
href="/get-started/installation/streamlit-playground"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-blocking: Why not just link straight to the playground? Isn't it self-explanatory enough?

@sfc-gh-dmatthews sfc-gh-dmatthews merged commit b3f5931 into main Sep 18, 2025
4 checks passed
@sfc-gh-dmatthews sfc-gh-dmatthews deleted the playground-and-get-started branch September 18, 2025 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants